package cn.itcast.server.session;

import io.netty.channel.Channel;
import java.util.List;
import java.util.Set;

/**
 * 聊天组会话管理接口
 */
public interface GroupSession {
    /**
     * 创建一个聊天组, 聊天组名称不存在的话创建成功 返回null
     * @param name 聊天组名称
     * @param members 成员
     * @return 聊天组对象
     */
    Group createGroup(String name, Set<String> members);

    /**
     * 加入聊天组
     * @param name 聊天组名称
     * @param member 成员
     * @return 聊天组对象
     */
    Group joinMember(String name, String member);

    /**
     * 移除成员
     * @param name 聊天组名称
     * @param member 成员
     * @return 聊天组对象
     */
     Group removeMember(String name, String member);

    /**
     * 移除聊天组
     * @param name 聊天组名称
     * @return 聊天组对象
     */
     Group removeGroup(String name);

    /**
     * 获取聊天组成员名称
     * @param name 聊天组名称
     * @return 返回成员集合
     */
     Set<String> getMembers(String name);

    /**
     * 获取聊天组成员会话
     * @param name 聊天组名称
     * @return 返回成员会话列表
     */
     List<Channel> getMemberChannel(String name);
}
